package com.testing.aggregate;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author lzp
 */
public class StartCollections {
    
    // List<? extends T>表示类型的上界为T，即参数化的类型可能是T也可能是T的子类。<? extends T>被设计用来读数据的泛型，只能读取类型为T的元素
    // List<? super T>表示类型的下界为T，即参数化的类型可能是T也可能是T的父类型。<? super T>被设计用来写数据的泛型，只能写入T或T的子类型，不能用来读。

    public static void main(String[] args) {
        String name = "abdcef1";
        String[] nameSu = name.split("");
        List<String> nameList = Arrays.asList(nameSu);
        // 对集合进行排序
        Collections.sort(nameList);

        // 对集合反转
        Collections.reverse(nameList);

        // 对集合内的元素随机排序
        Collections.shuffle(nameList);

        // 把集合里面的元素全部用0替换
        Collections.fill(nameList,"0");
        for (String str:nameList) {
            System.out.print(str+",");
        }
        System.out.println();

        // 将第二个字段n中的元素全部复制到第一个list中，并且覆盖相应索引的元素
        Collections.copy(nameList,Arrays.asList(name.split("")));
        for (String str:nameList) {
            System.out.print(str + ",");
        }
        System.out.println();
        // 集合中的最大值
        System.out.println(Collections.max(nameList));
        // 集合最小值
        System.out.println(Collections.min(nameList));
    }
}
